Adaptive filtering based upon boundary strength

ABSTRACT

An image decoding apparatus that includes a motion compensation prediction circuit configured to conduct motion compensation prediction for each of blocks to be decoded by using the reconstructed image, an inverse transformation circuit configured to conduct inverse orthogonal transformation for the data of the blocks to be decoded, and a determination circuit configured to determine a filtering strength and whether or not to conduct filtering, with respect to each of the boundaries. In addition, the determining circuit is configured to determine filtering is conducted when at least one of the two adjacent blocks is intra-coded, and filtering is not conducted when both of the two adjacent blocks are not intra-coded, a non-zero transformation coefficient is not coded in both of the two adjacent blocks, the two adjacent blocks are predicted by the same reference frame, and an absolute value of a difference between motion vectors of the two adjacent blocks is smaller than a specified threshold value.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of co-pending application Ser. No.14/515,904 filed on Oct. 16, 2014, which is a Continuation of co-pendingapplication Ser. No. 11/641,910 filed on Dec. 20, 2006 (now U.S. Pat.No. 8,891,634), which is a Divisional Application of co-pendingapplication Ser. No. 11/497,431 filed on Aug. 2, 2006 (now U.S. Pat. No.7,787,542), which is a Divisional Application of co-pending applicationSer. No. 10/799,384 filed on Mar. 11, 2004 and for which priority isclaimed under 35 U.S.C. § 120. application Ser. No. 10/799,384 is acontinuation of International Application No. PCT/JP02/09306, filed Sep.11, 2002, entitled “Adaptive Filtering Based upon Boundary Strength,”invented by Shijun Sun, Shawmin Lei and Hiroyuki Katata, now publishedunder International Publication No. WO 03/026313; which is acontinuation of U.S. patent application Ser. No. 09/953,329, filed Sep.14, 2001 (now U.S. Pat. No. 7,450,641), entitled “Adaptive FilteringBased upon Boundary Strength,” invented by Shijun Sun and Shawmin Lei.The entire contents of each of the above-identified applications arehereby incorporated by reference.

BACKGROUND OF THE INVENTION

Block based motion compensated video coding is used in many videocompression standards, such as for example, H.261, H.263, H.263+,MPEG-1, MPEG-2, and H26L. Block based motion compensation encodes videopixels in a block by block manner using image compression techniques.The image compression techniques normally use lossy compressiontechniques that result in visual artifact in the decoded images,referred to generally as image artifacts. One type of image artifactsare blocking artifacts that occur along the block boundaries in areconstructed image. The primary source of the blocking artifacts resultfrom coarse quantization of transform coefficients used to encode theblocks.

Reconstructed images are the images produced after the blocks areinverse transformed and decoded. Image filtering techniques may be usedto reduce the artifacts in reconstructed images. The rule of thumb forthese image filtering techniques is that image edges should be preservedwhile the rest of the image should be smoothed. A low pass filter may beused particular pixel or set of pixels surrounding the image edges.

Non-correlated image pixels that extend across image block boundariesare specifically filtered to reduce blocking artifacts. While filteringtechniques reduce blocking artifacts, however, these filteringtechniques may unfortunately introduce blurring artifacts into theimage. For example, if there are few or no blocking artifacts presentbetween adjacent blocks, then the low pass filtering needlesslyincorporates blurring into the image while at the same time wastingprocessing resources.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing how deblock filtering is selectively skippedaccording to similarities between adjacent image blocks.

FIG. 2 is a diagram showing two adjacent image blocks having similarmotion vectors.

FIG. 3 is a diagram showing how transform coefficients are identifiedfor one of the image blocks.

FIG. 4 is a diagram showing how residual transform coefficients arecompared between two adjacent image blocks.

FIG. 5 is a block diagram showing how the video image is encoded anddecoded.

FIG. 6 is a block diagram showing how deblock filtering is selectivelyskipped in a codec.

FIG. 7 is a representation of an existing block based image filteringtechnique.

FIG. 8 is a block diagram showing a technique for determining theboundaries to filter and the strength of the respective filter to use.

FIG. 9 is a drawing to explain other embodiments of the presentinvention.

FIG. 10 is a drawing to explain further embodiments of the presentinvention.

FIG. 11 is a drawing to explain further embodiments of the presentinvention.

FIG. 12 is a drawing to explain further embodiments of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Conventional filtering processes consider a single reconstructed imageframe at a time. Block based video encoding techniques may use motionvectors to estimate the movement of blocks consisting of a plurality ofpixels. The motion-vector information is available at both the encoderand decoder but is not used with conventional filtering processes. Forexample, if two adjacent blocks share the same motion vector withrespect to the same reference image frame, (for a multiple referenceframes system) there is likely no significant difference between theimage residuals of each block and accordingly should not be filtered. Inessence, adjacent portions of the image have the same motion withrespect to the same reference frame and accordingly no significantdifference between the image residuals would be expected. In many cases,the block boundary of these two adjacent blocks may have been filteredin the reference frame and should therefore not be filtered again forthe current frame. If a deblock filter is used without considering thismotion-vector information, the conventional filtering process mightfilter the same boundary again and again from frame to frame. Thisunnecessary filtering not only causes unnecessary blurring but alsoresults in additional filter computations.

FIG. 1 illustrates an image 12 that selectively filters blockingartifacts according to similarities between image blocks. It is to beunderstood that the image may likewise use non-square blocks or anyother sets of pixels. The borders between some of the blocks 14 includeblocking artifacts 18. In general blocking artifacts are any imagediscontinuities between blocks 14 that may result from the encodingand/or decoding process. A low pass filter or other filter may be usedto reduce the blocking artifacts that exist at the borders of adjacentimage blocks.

For example, blocking artifacts 24 exist between blocks 20 and 22. A lowpass filter may be used at the border 26 between blocks 20 and 22 toremove or otherwise reduce the blocking artifacts 24. The low passfilter, for example, selects a group of pixels 28 from both sides of theborder 26. An average pixel value, or any other statistical measure, isderived from the group of pixels 28. Then each individual pixel iscompared to the average pixel value. Any pixels in group 28 outside of apredetermined range of the average pixel value is then replaced with theaverage pixel value.

As previously described, if there are few or no blocking artifacts 24between the adjacent pixels, then the groups of pixels 28 may beneedlessly filtered causing blurring in the image. A skip mode filteringscheme may use the motion estimation and/or compensation information foradjacent image blocks as a basis upon which to selectively filter. Ifthe motion estimation and compensation information is sufficientlysimilar the filtering may be skipped. This avoids unnecessary imageblurring and significantly reduces the required number of filteringoperations, or any other appropriate value.

As an example, it may be determined during the encoding process thatadjacent image blocks 30 and 32 have similar coding parameters.Accordingly, the deblock filtering may be skipped for the groups ofpixels 34 that extend across the border 31 between adjacent blocks 30and 32. Skip mode filtering can be used for any horizontal, vertical, orotherwise any boundary between adjacent blocks in the image 12.

FIG. 2 illustrates a reference frame 42, reference frame 48, and acurrent frame 40 that is currently being encoded or decoded. The codingparameters for blocks 44 and 46 are compared to determine whether thedeblock filtering should be skipped between the two adjacent blocks 44and 46. One of the encoding parameters that may be compared is themotion vectors (MV) for the blocks 44 and 46.

A motion vector MV1 points from block 44 in the current image frame 40to an associated block 44′ in the reference image 42. A motion vectorMV2 points from block 46 in the current image frame 40 to an associatedblock 46′ in the reference frame 42. A skip mode filtering checks to seeif the motion vectors MV1 and MV2 point to adjacent blocks in the samereference frame 42. If the motion vectors point to adjacent blocks inthe same reference frame (MV1=MV2), then the deblock filtering may beskipped. This motion vector information may be used along with othercoding information to decide whether to skip deblock filtering betweenthe two image blocks 44 and 46.

More than one reference frame may be used during the encoding anddecoding process. For example, there may be another reference frame 48.The adjacent blocks 44 and 46 may have motion vectors pointing todifferent reference frames. In one example, the decision to skip deblockfiltering depends on whether the motion vectors for the two adjacentblocks point to the same reference frame. For example, image block 44may have a motion vector 49 pointing to reference frame 48 and imageblock 46 may have the motion vector MV2 pointing to reference frame 42.The deblock filtering is not skipped in this example because the motionvectors 49 and MV2 point to different reference frames.

FIG. 3 illustrates another example of a coding parameter that may beused to decide whether or not to selectively skip deblock filtering. Theimage block 44 from image frame 40 is compared with reference block 44′from the reference frame 42 pointed to by the motion vector MV1 aspreviously illustrated in FIG. 2. A residual block 44″ is output fromthe comparison between image block 44 and reference block 44′. Atransform 50 is performed on the residual block 44″ creating atransformed block 44 of transform coefficients. In one example, thetransform 50 is a Discrete Cosine Transform. The transformed block 44includes D.C. components 52 and A.C. components 53.

The D.C. component 52 refers to a lowest frequency transform coefficientin image block 44. For example, the coefficient that represents theaverage energy in the image block 44. The A.C. components 53 refer tothe transform coefficients that represent the higher frequencycomponents in the image block 44. For example, the transformcoefficients that represent the large energy differences between pixelsin the image block 44.

FIG. 4 illustrates the transformed residual blocks 44 and 46. The D.C.components 52 from the two transformed blocks 44 and 46 are compared inprocessor 54. If the D.C. components are the same or within some rangeof each other, the processor 54 notifies a deblock filter operation 56to skip deblock filtering between the border of the two adjacent blocks44 and 46. If the D.C. components 52 are not similar, then no skipnotification is initiated and the border between blocks 44 and 46 isdeblock filtered.

In one example, the skip mode filtering may be incorporated into theTelecommunications Sector of the International Telecommunication Union(ITU-T) proposed H.26L encoding scheme. The H.26L scheme uses 4×4integer Discrete Cosine Transform (DCT) blocks. If desired, only theD.C. component of the two adjacent blocks may be checked. However somelimited low frequency A.C. coefficients may likewise be checked,especially when the image blocks are larger sizes, such as 9×9 or 16×16blocks. For example, the upper D.C. component 52 and the three lowerfrequency A.C. transform coefficients 53 for block 44 maybe comparedwith the upper D.C. component 52 and three lower frequency A.C.transform coefficients 53 for block 46. Different combinations of D.C.and/or any of the A.C. transform coefficients can be used to identifythe relative similarity between the two adjacent blocks 44 and 46.

The processor 54 can also receive other coding parameters 55 that aregenerated during the coding process. These coding parameters include themotion vectors and reference frame information for the adjacent blocks44 and 46 as previously described. The processor 54 may use some or allof these coding parameters to determine whether or not to skip deblockfiltering between adjacent image blocks 44 and 46. Other encoding andtransform functions performed on the image may be carried out in thesame processor 54 or in a different processing circuit. In the casewhere all or most of the coding is done in the same processor, the skipmode is simply enabled by setting a skip parameter in the filteringroutine.

FIG. 5 shows how skip mode filtering may be used in a block-basedmotion-compensated Coder-Decoder (Codec) 60. The codec 60 is used forinter-frame coding. An input video block from the current frame is fedfrom box 62 into a comparator 64. The output of a frame buffering box 80generates a reference block 81 according to the estimated motion vector(and possible reference frame number). The difference between the inputvideo block and the reference block 81 is transformed in box 66 and thenquantized in box 68. The quantized transform block is encoded by aVariable Length Coder (VLC) in box 70 and then transmitted, stored, etc.

The encoding section of the codec 60 reconstructs the transformed imageby first Inverse Quantizing (IQ) the transformed and quantized image inbox 72. The inverse quantized image is then inverse transformed in box74 to generate a reconstructed residual image. This reconstructedresidual block is then added in box 76 to the reference block 81 togenerate a reconstructed image block. Generally the reconstructed imageis loop filtered in box 78 to reduce blocking artifacts caused by thequantization and transform process. The filtered image is then bufferedin box 80 to form reference frames. The frame buffering in box 80 usesthe reconstructed reference frames for motion estimation andcompensation. The reference block 81 is compared to the input videoblock in comparator 64. An encoded image is output at node 71 from theencoding section and is then either stored or transmitted.

In a decoder portion of the codec 60, a variable length decoder (VLD)decodes the encoded image in box 82. The decoded image is inversequantized in box 84 and inverse transformed in box 86. The reconstructedresidual image from box 86 is added in the summing box 88 to thereference block 91 before being loop filtered in box 90 to reduceblocking artifacts and buffered in box 92 as reference frames. Thereference block 91 is generated from box 92 according to the receivedmotion vector information. The loop filtered output from box 90 canoptionally be post filtered in box 94 to further reduce image artifactsbefore being displayed as, a video image in box 96. The skip modefiltering scheme can be performed in any combination of the filteringfunctions in boxes 78, 90 and 94.

The motion estimation and compensation information available duringvideo coding are used to determine when to skip deblock filtering inboxes 78, 90 and/or 94. Since these coding parameters are alreadygenerated during the encoding and decoding process, there are noadditional coding parameters that have to be generated or transmittedspecially for skip mode filtering.

FIG. 6 shows is further detail how skip mode filtering may be used inthe filters 78, 90, and/or 94 in the encoder and decoder in FIG. 5. Theinterblock boundary between any two adjacent blocks “i” and “k” is firstidentified in box 100. The two blocks may be horizontally or verticallyadjacent in the image frame. Decision box 102 compares the motion vectormv(j) for block j with the motion vector mv(k) for block k. It is firstdetermined whether the two adjacent blocks j and k have the same motionvector pointing to the same reference frame. In other words, the motionvectors for the adjacent blocks point to adjacent blocks (mv(j)=mv(k))in the same reference frame (ref(j)=ref(k)).

It is then determined whether the residual coefficients for the twoadjacent blocks are similar. If there is no significant differencebetween the image residuals of the adjacent blocks, for example, the twoblocks j and k have the same or similar D.C. component (dc(j) dc(k)),then the deblock filtering process in box 104 is skipped. Skip modefiltering then moves to the next interblock boundary in box 106 andconducts the next comparison in decision box 102. Skip mode filteringcan be performed for both horizontally adjacent blocks and verticallyadjacent blocks.

In one embodiment, only the reference frame and motion vectorinformation for the adjacent image blocks are used to determine blockskipping. In another embodiment, only the D.C. and/or A.C. residualcoefficients are used to determine block skipping. In anotherembodiment, the motion vector, reference frame and residual coefficientsare all used to determine block skipping.

The skip mode filtering scheme can be applied to spatially subsampledchrominance channels. For example in a case with 4:2:0 color formatsequences, skip mode filtering for block boundaries may only rely on theequality of motion vectors and D.C. components for the luminancecomponent of the image. If the motion vectors and the D.C. componentsare the same, deblock filtering is skipped for both the luminance andchrominance components of the adjacent image blocks. In anotherembodiment, the motion vectors and the D.C. components are consideredseparately for each luminance and chrominance component of the adjacentblocks. In this case, a luminance or chrominance component for adjacentblocks may be deblock filtered while the other luminance or chrominancecomponents for the same adjacent blocks are sometimes not deblockfiltered.

Referring to FIG. 7, a technique recently proposed by others in H.26Ldefines a “block strength” parameter for the loop filter to control theloop filtering process. Each block of an image has a strength value thatis associated with the block and controls the filtering performed on allof its four block boundaries. The block strength value is derived basedon the motion vectors and the transform coefficients available in thebitstream. However, after consideration of the use of the block strengthvalue for all four edges of the block, the present inventors came to therealization this results in removing some blocking artifacts at someedges while blurring along other edges.

In contrast to the block by block manner of filtering, the presentinventors came to the realization that filtering determinations shouldbe made in an edge by edge manner together with other information. Theother information, may include for example, intra-block encoding ofblocks, motion estimation of blocks with residual information, motionestimation of blocks without residual information, and motion estimationof blocks without residuals having sufficient differences. One, two,three, or four of these information characteristics may be used toimproved filtering abilities in an edge by edge manner. Based upondifferent sets of characteristics, the filtering may be modified, asdesired.

For each block boundary a control parameter is preferably defined,namely, a boundary strength Bs. Referring to FIG. 8 a pair of blockssharing a common boundary are referred to as j and k. A first block 200checks to see if either one of the two blocks is intra-coded. If eitheris intra-coded then the boundary strength is set to three at block 202.Block 200 determines if both of the blocks are not motion predicted. Ifno motion prediction is used then the block derives from the frameitself and accordingly there should be filtering performed on theboundary. This is normally appropriate because intra-coded blockboundaries normally include blocking artifacts.

If both of the blocks j and k are, at least in part, predicted from aprevious or future frame, then the blocks j and k are checked at block204 to determine if any coefficients are coded. The coefficients, may befor example, discrete cosine transform coefficients. If either of theblocks j and k include non-zero coefficients, then at least one of theblocks represent a prediction from a previous or future frame togetherwith modifications to the block using the coefficients, generallyreferred to as residuals. If either of the blocks j and k includenon-zero coefficients (and motion predicted) then the boundary strengthis set to two at block 206. This represents an occurrence where theimages are predicted but the prediction is corrected using a residual.Accordingly, the images are likely to include blocking artifacts.

If both of the blocks j and k are motion predicted and do not includenon-zero coefficients, generally referred to as residuals, then adetermination at block 208 is made to check if the pixels on either sideof the boundary are sufficiently different from one another. This maylikewise be used to determine if the residuals are sufficiently small.If a sufficient difference exists then a blocking artifact is likely toexist. Initially a determination is made to determine if the two blocksuse different reference frames, namely, R(j)≠R(k). If the blocks j and kare from two different reference frames then the boundary strength isassigned a value of one at block 210. Alternatively, if the absolutedifference of the motion vectors of the two image blocks is checked todetermine if they are greater than or equal to 1 pixel in eithervertical or horizontal directions, namely, |V(j,x)−V(k,x)| pixel or|V(j,y)−V(k,y)|≥1 pixel. Other threshold values may likewise be used, asdesired, including less than or greater than depending on the test used.If the absolute difference of the motion vectors is greater than orequal to one then the boundary strength is assigned a value of one.

If the two blocks j and k are motion predicted, without residuals, arebased upon the same frame, and have insignificant differences, then theboundary strength value is assigned a value of zero. If the boundarystrength value is assigned a value of zero the boundary is not filteredor otherwise adaptively filtered accordingly to the value of theboundary strength. It is to be understood that the system may lightlyfilter if the boundary strength is zero, if desired.

The value of the boundary strength, namely, one, two, and three, is usedto control the pixel value adaptation range in the loop filter. Ifdesired, each different boundary strength may be the basis of adifferent filtering. For example, in some embodiments, three kinds offilters may be used wherein a first filter is used when Bs=1, a secondfilter is used when Bs=2 and a third filter is used when Bs=3. It is tobe understood that minimal filtering in comparison to other filteringwhich results in a more significant difference may be performed evenwhen there is no filtering (corresponding to Bs=0). In the example shownin FIG. 8 the larger the value for Bs the greater the filtering. Thefiltering may be performed by any suitable technique, such as methodsdescribed in Joint Committee Draft (CD) of the Joint Video Team (JVT) ofISO/IEC MPEG and ITU-T VCEG (JVT-C167) or other known methods forfiltering image artifacts.

Skip mode filtering can be used with any system that encodes or decodesmultiple image frames. For example, DVD players, video recorders, or anysystem that transmits image data over a communications channel, such asover television channels or over the Internet. It is to be understoodthat the system may use the quantization parameter as a codingparameter, either alone or in combination with other coding parameters.In addition, it is to be understood that the system may be free fromusing the quantization parameter alone or free from using thequantization parameter at all for purposes of filtering.

The skip mode filtering described above can be implemented withdedicated processor systems, micro controllers, programmable logicdevices, or microprocessors that perform some or all of the operations.Some of the operations described above may be implemented in softwareand other operations may be implemented in hardware.

For the sake of convenience, the operations are described as variousinterconnected functional blocks or distinct software modules. This isnot necessary, however, and there may be cases where these functionalblocks or modules are equivalently aggregated into a single logicdevice, program or operation with unclear boundaries. In any event, thefunctional blocks and software modules or described features can beimplemented by themselves, or in combination with other operations ineither hardware or software.

In some embodiments of the present invention as illustrated in FIG. 9,image data 902 may be input to an image data encoding apparatus 904which includes the adaptive filtering portion as described above forsome embodiments of the present invention. Output from the image dataencoding apparatus 904 is an encoded image data and may then be storedon any computer-readable storage media 906. The storage media mayinclude, but is not limited to, disc media, memory card media, ordigital tape media. Storage media 906 may act as a short-term storagedevice. The encoded image data may be read from storage media 906 anddecoded by an image data decoding apparatus 908 which includes theadaptive filtering portion as described above for some embodiments ofthe present invention. The decoded image data may be provided for outputdecoded image data 910 to a display or other device.

In some embodiments of the present invention, as illustrated in FIG. 10image data 1002 may be encoded and the encoded image data may then bestored on storage media 1006 and image data decoding apparatus 1008 isthe same as shown in FIG. 9. In FIG. 10, B's data encoding portion 1012receives the value of the boundary strength B's for each block boundaryand encoded by any data encoding method which includes DPCM, multi-valuerun-length coding, transform coding with loss-less feature and so on.The boundary strength B's may be generated as described in FIG. 8. Theencoded boundary strength may then be stored on storage media 1006. Inone example, the encoded boundary strength may be stored separately fromthe encoded image data. In other example, the encoded boundary strengthand the encoded image data may be multiplexed before storing on thestorage media 1006.

The encoded boundary strength may be read from the storage media 1006and decoded by B's data decoding portion 1014 to input the decodedboundary strength to image data decoding apparatus 1008. When thedecoded boundary strength is utilized in image data decoding apparatus1008 to perform the adaptive filtering of the present invention, it maynot be necessary to repeat the process described in FIG. 8 to generateboundary strength and this may save the processing power for theadaptive filtering.

In some embodiments of the present invention, as illustrated in FIG. 11,image data 1102 may be input to an image data encoding apparatus 1104which includes the adaptive filtering portion as described above forsome embodiments of the present invention. Output from the image dataencoding apparatus 1104 is an encoded image data and may then be sentover a network, such as a LAN, WAN or the Internet 1106. The encodedimage data may be received and decoded by an image decoding apparatus1108 which also communicates with network 1106. The image data decodingapparatus 1108 includes the adaptive filtering portion as describedabove for some embodiments of the present invention. The decoded imagedata may be provided for output decoded image data 1110 to a display orother device.

In some embodiments of the present invention, as illustrated in FIG. 12,image data 1202 may be encoded and the encoded image data may then besent over a network, such as a LAN, WAN or the Internet 1206. The basicprocedure of image data encoding apparatus 1204 and image data decodingapparatus 1208 is the same as FIG. 11. In FIG. 12, Bs data encodingportion 1212 receives the value of the boundary strength Bs for eachblock and encoded by any data encoding method which includes DPCM,multi-value run-length coding, transform coding with loss-less featuresand so on. The boundary strength Bs may be generated as described inFIG. 8. The encoded boundary strength may then be sent over the network1206. In one example, the encoded boundary strength may be sentseparately from the encoded image data. In other examples, the encodedboundary strength and the encoded image data may be multiplexed beforesending over the network 1206.

The encoded boundary strength may be received from the network 1206 anddecoded by Bs data decoding portion 1214 to input the decoded boundarystrength to image data decoding apparatus 1208 to perform the adaptivefiltering of the present invention, it may not be necessary to repeatthe process described in FIG. 8 to generate boundary strength and thismay save the processing power for the adaptive filtering.

Having described and illustrated the principles of the invention in apreferred embodiment thereof, it should be apparent that the inventionmay be modified in arrangement and detail without departing from suchprinciples. Claim is made to all modifications and variation comingwithin the spirit and scope of the following claims.

1-2. (canceled)
 3. A method of decoding an image to be used as areference frame, comprising: motion compensation predicting a block tobe decoded by using a previously reconstructed image as a referenceimage; inverse transforming a block of coefficients; reconstructing animage using the motion compensation predicted block and the inversetransformed block; deblock filtering the reconstructed image; andstoring the deblock filtered image to be used as a reference frame;wherein the deblock filtering comprises determining whether or not toconduct filtering a boundary between two adjacent blocks in thereconstructed image, where: (1) filtering is conducted when at least oneof the two adjacent blocks includes non-zero coefficients, and (2)filtering is not conducted when both of the two adjacent blocks are notintra-coded, a nonzero transformation coefficient is not coded in bothof the two adjacent blocks, the two adjacent blocks are predicted by asame reference frame, and an absolute value of a difference betweenmotion vectors of the two adjacent blocks is smaller than a specifiedthreshold value.